BULK INSERT এবং BCP (Bulk Copy Program) হল SQL Server-এ ডেটা দ্রুত এবং কার্যকরভাবে লোড (import) বা এক্সপোর্ট (export) করার জন্য ব্যবহৃত দুটি শক্তিশালী টুল। এগুলো সাধারণত বৃহৎ পরিমাণ ডেটা ডাটাবেসে ইনসার্ট বা আউটপুট করার ক্ষেত্রে ব্যবহৃত হয়, যা সাধারাণ SQL ইনসার্ট স্টেটমেন্টের তুলনায় অনেক দ্রুত এবং বেশি কার্যকর।
1. BULK INSERT
BULK INSERT হল একটি SQL কমান্ড যা SQL Server ডাটাবেসে বড় পরিমাণ ডেটা ইনসার্ট করতে ব্যবহৃত হয়। এটি সাধারণত ফাইল থেকে ডেটা ইনপুট করে ডাটাবেসে সরাসরি ইনসার্ট করে, যেমন CSV, TXT, অথবা অন্য ফরম্যাটের ফাইল থেকে। BULK INSERT কমান্ডটি ডেটা ইম্পোর্ট করার জন্য একটি দ্রুত এবং কার্যকরী উপায় প্রদান করে।
BULK INSERT এর ব্যবহার:
- ফাইল থেকে ডেটা ইন্সার্ট: একটি নির্দিষ্ট ফাইল থেকে ডেটা ইনসার্ট করার জন্য
BULK INSERTব্যবহার করা হয়। ফাইলটি সাধারণত কমা বা ট্যাব দ্বারা পৃথক করা ডেটা ধারণ করে। - ফাইল ফরম্যাট নির্বাচন: ইনপুট ফাইলের ফরম্যাট (যেমন, CSV, Tab-delimited, etc.) নির্বাচন করা হয়।
SQL Syntax:
BULK INSERT [DatabaseName].[SchemaName].[TableName]
FROM 'C:\Path\To\Your\File.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FIRSTROW = 2 -- If you want to skip header row
);
Parameter Explanation:
- FIELDTERMINATOR: এটি কলামগুলির মধ্যে পৃথককারী চরিত্র নির্ধারণ করে। উদাহরণস্বরূপ, একটি কমা (
,) সাধারণত CSV ফাইলের মধ্যে ব্যবহার হয়। - ROWTERMINATOR: এটি প্রতিটি রেকর্ডের শেষ নির্ধারণ করে। সাধারণত নতুন লাইন (
\n) বা ক্যারিজ রিটার্ন (\r\n) ব্যবহার হয়। - FIRSTROW: যদি ইনপুট ফাইলে হেডার রো থাকে, তাহলে এই প্যারামিটারটি ব্যবহার করে প্রথম রোটি স্কিপ করা যেতে পারে।
BULK INSERT এর সুবিধা:
- Fast Data Import:
BULK INSERTঅত্যন্ত দ্রুত এবং কার্যকরী, বিশেষ করে বড় পরিমাণ ডেটা ইনপোর্ট করার ক্ষেত্রে। - Ease of Use: SQL Server Management Studio (SSMS)-এর মাধ্যমে সরাসরি কোড ব্যবহার করে সহজেই ডেটা ইম্পোর্ট করা যায়।
- Minimal Resource Usage: অন্যান্য পদ্ধতির তুলনায় এটি কম রিসোর্স ব্যবহার করে ডেটা লোড করে।
2. BCP (Bulk Copy Program)
BCP (Bulk Copy Program) হল SQL Server-এর একটি কনসোল ভিত্তিক টুল, যা ডেটাবেসের মধ্যে দ্রুত এবং সহজে ডেটা ইম্পোর্ট বা এক্সপোর্ট করার জন্য ব্যবহৃত হয়। BCP কমান্ড ব্যবহারকারীদের বড় পরিমাণ ডেটা দ্রুত আউটপুট বা ইনপুট করতে সহায়তা করে এবং এটি বিভিন্ন ফাইল ফরম্যাটে ডেটা এক্সপোর্ট বা ইম্পোর্ট করতে সক্ষম।
BCP এর ব্যবহার:
- Data Export (এক্সপোর্ট): SQL Server ডাটাবেস থেকে ডেটা ফাইল (যেমন CSV, TXT) আউটপুট করার জন্য।
- Data Import (ইম্পোর্ট): ফাইল থেকে SQL Server ডাটাবেসে ডেটা ইনপুট করার জন্য।
- Flexible Data Formatting: BCP টুলটি অনেক ফরম্যাট সাপোর্ট করে, যেমন, কমা সেপারেটেড ভ্যালুজ (CSV), ট্যাব সেপারেটেড ভ্যালুজ (TSV), বা অন্যান্য কাস্টম ফরম্যাট।
SQL Syntax for Export:
bcp [DatabaseName].[SchemaName].[TableName] out C:\Path\To\Your\File.txt -S [ServerName] -U [Username] -P [Password] -c -t,
SQL Syntax for Import:
bcp [DatabaseName].[SchemaName].[TableName] in C:\Path\To\Your\File.txt -S [ServerName] -U [Username] -P [Password] -c -t,
Parameter Explanation:
- out: ডেটা এক্সপোর্ট করার জন্য ব্যবহার করা হয়।
- in: ডেটা ইনপোর্ট করার জন্য ব্যবহার করা হয়।
- -S: SQL Server সার্ভারের নাম।
- -U: SQL Server ইউজারনেম।
- -P: SQL Server পাসওয়ার্ড।
- -c: ক্যারেক্টার ডেটা টাইপ ব্যবহার করা হবে, যা টেক্সট বা CSV ফাইলের জন্য উপযুক্ত।
- -t,: ট্যাব ডিলিমিটেড ডেটার জন্য সেপারেটর। আপনি কমা (
,) বা অন্য কোনো সেপারেটরও ব্যবহার করতে পারেন।
BCP এর সুবিধা:
- Command Line Tool: BCP একটি কনসোল ভিত্তিক টুল, যা কমান্ড লাইন থেকে দ্রুত কাজ করতে সহায়তা করে।
- High Performance: বিশেষ করে বড় পরিমাণ ডেটা এক্সপোর্ট/ইম্পোর্ট করার সময় BCP অত্যন্ত দ্রুত কাজ করে।
- Flexibility: ফাইল ফরম্যাট এবং ডেটা ট্রান্সফারের জন্য অনেক অপশন রয়েছে, যা BCP কে অনেক বেশি ইউজার-ফ্রেন্ডলি করে তোলে।
BCP এর কিছু অপশন:
- -b: ব্যাচ সাইজ। এটি নির্ধারণ করে যে, একবারে কত রেকর্ড প্রসেস হবে।
- -F: প্রথম রেকর্ড সংখ্যা, যেখানে ডেটা পাঠানো শুরু হবে।
- -L: শেষ রেকর্ড সংখ্যা, যেখানে ডেটা পাঠানো শেষ হবে।
BULK INSERT এবং BCP এর মধ্যে পার্থক্য
| বিষয় | BULK INSERT | BCP |
|---|---|---|
| প্রকার | SQL কমান্ড | কনসোল টুল |
| ইন্টারফেস | SQL Server Management Studio (SSMS) | কমান্ড লাইন/পাওয়ারশেল |
| ইনপুট ফাইল | শুধুমাত্র ফাইল (CSV, TXT, etc.) | বিভিন্ন ফাইল (CSV, TXT, Custom) |
| ব্যবহার | SQL Server এর ভিতরে দ্রুত ডেটা ইনপুট | ডেটা এক্সপোর্ট/ইম্পোর্টের জন্য উপযুক্ত |
| পারফরম্যান্স | দ্রুত, তবে কম ফিচারসমূহ | দ্রুত এবং অনেক বেশি কাস্টমাইজযোগ্য |
সারাংশ:
- BULK INSERT এবং BCP দুইটি শক্তিশালী টুল যা SQL Server-এ ডেটা দ্রুত ইনপুট এবং এক্সপোর্ট করার জন্য ব্যবহৃত হয়।
- BULK INSERT SQL কমান্ডের মাধ্যমে ডেটা ইনসার্ট করতে সহায়তা করে, যেখানে BCP একটি কনসোল ভিত্তিক টুল যা ডেটা দ্রুত এবং কমান্ড লাইন থেকে পরিচালনা করতে সক্ষম।
- কোন টুলটি ব্যবহার করা হবে, তা আপনার প্রয়োজন এবং ব্যবহারের উপযোগিতার উপর নির্ভর করে।
Read more